package com.mail.dubbo.api;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mail.model.db.UmsAdmin;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author 吕永乐
 * @date 2022/06/21 10:24
 **/
public interface UmsAdminApi {
	/**
	 * 根据用户名查询用户
	 * @param username
	 * @return
	 */
	UmsAdmin getAdminByUsername(String username);

	/**
	 * 根据id查询admin
	 * @param userId
	 * @return
	 */
	UmsAdmin getAdminById(Long userId);

	/**
	 * 根据用户名或姓名分页获取用户列表 (分页查询)
	 *
	 * @param pageNum
	 * @param pageSize
	 * @param keyword
	 * @return
	 */
	Page<UmsAdmin> getAdminByPage(Long pageNum, Long pageSize, String keyword);

	/**
	 * 保存数据
	 * @param umsAdmin
	 * @return
	 */
	void save(UmsAdmin umsAdmin);

	/**
	 * 根据 id 修改状态
	 * @param id
	 * @param status
	 */
	void updateStatusById(Long id, Integer status);

	/**
	 * 修改指定用户信息
	 * @param umsAdmin
	 */
	void update(UmsAdmin umsAdmin);

	/**
	 * 更新最后登录时间
	 * @param admin
	 */
	void updateLastLoginTime(UmsAdmin admin);

	/**
	 * 删除当前用户
	 * @param adminId
	 */
	void remove(Long adminId);

	/**
	 * 根据用户名修改密码
	 * @param umsAdmin
	 */
	void updatePasswordByUsername(UmsAdmin umsAdmin);
}
